package com.aixiaomaomi.javamail.controller;

import com.aixiaomaomi.javamail.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @Author：请允悲
 * @Package：com.aixiaomaomi.javamail.controller
 * @Project：javamail
 * @name：MailController TODO 控制器类，负责处理邮件发送的API请求。 通过 POST 请求调用邮件发送服务。
 * @Date：2025/1/16 9:28
 * @Filename：MailController
 */
@RestController// 标注该类为 REST 控制器，Spring Boot 会自动将其注册为处理 HTTP 请求的类
@RequestMapping("/api/mail")  // 定义请求路径的基础部分为 "/api/mail"，即所有方法都将以该路径为前缀
public class MailController {


    @Autowired  // 自动注入 MailService，Spring 会自动查找 MailService 的实例并注入到该字段
    private MailService mailService;

    /**
     * No such property: code for class: Script1
      * @return 返回一个字符串 hello word
     * @author 请允悲
     * @description TODO
     * @date 2025/1/16 9:37
     */
    @GetMapping ("/send")// 通过 GET 请求处理
    public String test(){
        return "hello word";
    }

    @PostMapping("/send")  // 通过 POST 请求处理邮件发送，路径为 "/api/mail/send"
    public String sendEmail(
            @RequestParam String to,        // 从请求参数中提取收件人邮箱
            @RequestParam String subject,   // 从请求参数中提取邮件主题
            @RequestParam String body) {    // 从请求参数中提取邮件内容
        try {
            // 调用 MailService 发送邮件
            mailService.sendSimpleEmail(to, subject, body);
            return "邮件发送成功！";  // 如果邮件发送成功，返回成功消息
        } catch (Exception e) {
            e.printStackTrace();  // 打印异常信息
            return "邮件发送失败：" + e.getMessage();  // 返回失败消息，并包含错误详情
        }
    }
}
